見出し画像

GPT-3とは

GPT-3GPTは、Generative Pre-trained Transformerの略で、3はバージョンを表します。Generative Pre-trained Transformerをあえて訳すとすると「生成的な事前訓練を行なったトランスフォーマー 」になります。

この記事では、「生成モデル」や「言語モデル」といった用語の解説を通して、GPT-3とは一体何者なのかを解説します。

GPTの進化と発展

2018年にGPT-1が登場し、その生成文章のクオリティの高さが評判になりました。2019年には、GPT-2が発表されましたが、GPT-2の悪用を恐れたOpenAIはしばらくの間、GPT-2のモデル(訓練済みで最も高性能なもの)を一般に公開しませんでした。2020年に発表されたGPT-3は、1750億個のパラメータを持つ巨大なモデルであり、自動生成される文章が人間によるものとほぼ見分けが付かないほどの精度になりました。

このように、GPTは一年ごとにバージョンアップしました。また、その後に登場したInstructGPTChatGPTはGPTをベースにしています。なお、これらのチャットAIでは人間が期待するような返答を生成するように訓練する際に強化学習を取り入れています。

さて、GPT-3は言語モデルなのですが、そもそも言語モデルとは何なのでしょうか。

言語モデルと生成モデル

言語モデルとは「文章の中で次に現れるべき言葉を確率的に予測するモデル」のことです。

例えば、「犬が丘の上を」という文章に続きそうな言葉は予測します。「駆ける」が40%、「走る」が30%、「歩く」が25%など、あらゆる言葉に対して確率を計算するのが言語モデルになります。

また、「犬が丘の上を」のようにモデルに入力する文章をプロンプト(Prompt)と呼びます。プロンプト次第では、次の言葉を予測するのが難しくなります。

もしプロンプトが「犬が」だったら、次に来る言葉にはさまざまなものが考えられます。

犬が 駆ける
犬が 走る
犬が 歩く
犬が 吠える
犬が 座る
犬が 寝る
犬が 食べる

上記以外にも犬に関するあらゆる行動が可能性があるものとして浮かんでくるでしょう。その他にも背景や情景的なものも考えられます。

犬が 道 ...
犬が 庭 ...
犬が 丘 ...
犬が 森 ...
犬が 山 ...

犬の動作の対象となる言葉がくるのかもしれません。

犬が 人 ...
犬が 子供 ...
犬が ご飯 ...
犬が ボール ...
犬が 猫 ...

よって、言語モデルはさまざまな可能性を幅広く予測できる必要があります。

次に来る言葉を予測するのは、プロンプトをもとに文章を生成することができるようになることでもあります。なぜなら、次から次へと確率の高い言葉をつなげていけば文章が生成できるからです。あるいは、確率の高い文章をいくつか生成して文章全体として一番確率が高いものを選んだりすることもできます。

なお、「生成」(Generate)とか「生成的な」(Generative)という言葉には、言語モデルに関していうと「文章を生成する」の意味があります。

「生成」できるようになるためには、文章の構造やパターンなどを「理解する」ことが必要となります。つまり、言語モデルに文章を生成させる訓練を繰り返し行うことで言語モデルは文章に関する知識を深めるようになります。ある意味「理解する」ことができるようになるわけです。

では、GPT-3はどのようにして生成的な訓練を行い、さまざまな言葉の候補の確率を計算できるようになるのでしょうか。ここで事前学習ファインチューニングが登場します。

事前学習とファインチューニング

GPTやBERTなどの言語モデルの訓練では、まず事前学習を行なって言語モデルとして成熟させます。この段階では、次の言葉の予測ができるようになっています。その後の段階としてファインチューニングを行います。そこでは言語モデルのニューラルネットワークのパラメータに微調整を加えながら特定のタスクにモデルを適応させる学習を行います。

事前学習はたくさんの文章を必要とします。幸い、世の中にはたくさんの文章が存在します。特にウェッブ上にはたくさんのブログや記事などがあり、さまざまなトピックに関して書かれています。例えば、ウィキペディアなどは専門的な知識や歴史についてたくさんのことが書かれています。

これらの文章を使ってモデルに次の言葉を予測するように訓練していくと、モデルはプロンプトの文章からの文脈を読み取り、次に来るべき言葉の確率を計算できるようになります。このような訓練をさまざまな文章を使って繰り返し行うことで言語モデルの精度が上がっていきます。つまり、モデルは言語の仕組みや統計的な頻度などさまざまな情報を理解するようになり、プロンプトを与えられた時にその文脈から次の言葉を予測できるようになるのです。

このような訓練を行うには、たくさんの文章とそれに付随する答え(ラベル)が必要となります。しかし、通常の「教師あり学習」とは異なり、人間がラベルを付与する必要がありません。なぜなら、もともと存在する文章の一部をプロンプトとして使い、その次に来る言葉を予測するのでラベルはデータの中にあるからです。

ラベルを準備(付与)する必要がないので、これを「教師なし学習」あるいは「自己教師あり学習」と呼びます。最近は「自己教師あり学習」と呼ぶことが多いです。なぜならラベルがないわけではなく、データの中にもともと存在するからです。つまり、「自己教師あり」とはデータの中にもともとある情報からラベルとして使うことを指しています。

まとめると、事前学習の段階で自己教師あり学習による訓練を行い言語モデルとして成熟させます。その後に、ファインチューニング、つまりニューラルネットワークのパラメータの微調整を行う訓練をして特定のタスクにモデルを適応させる学習行います。つまり、「事前」というのはファインチューニングの前であるという意味があります。

なお、ファインチューニングは教師あり学習なのでラベルを準備する手間がかかリマス。事前学習ほど大量のデータを必要とはしないのですが、それでま大変な時間と労力を必要とします。よって、教師あり学習は、できれば避けたいものです。

その反面、事前学習は人間がラベルを付与する手間がかからないので、豊富なビッグデータを利用し自己教師あり学習を行うこと可能です。よって、GPT-3はたくさん知識をニューラルネットワークのパラメータへと吸収しました。それが1750億個という大量のパラメータが使われた理由です。

GPT-3のベースはトランスフォーマー

以前の言語モデルはRNN(Recurrent Neural Network、リカレント・ニューラルネットワーク、回帰型ニューラルネットワーク)が主流でした。代表的なのがLSTMで、Amazon、Apple、Facebook、Google、Microsoftなどが翻訳や音声認識でLSTMを使っていたそうです。

しかし、近年は2017年に登場したトランスフォーマー(Transformer)が言語モデルの主流となりました。

GPT-3もトランスフォーマーのアーキテクチャの一部であるデコーダをベースにしたモデルです。デコーダは文章を生成する機能を持ちます。GPT-3では、オリジナルのトランスフォーマー以上のパラメータを使い大規模な事前学習を行うことでデコーダを優秀な言語モデルへと訓練しました。

ファインチューニング無しでも答える

GPT-3もファインチューニングを行うことで特定のタスクに適応させることができます。しかし、GPT-3のすごいところはファインチューニングなしでも、文章で質問をすることで答えを生成できるようになったことでした。GPT-2までは、そのような性能はあまり高くはなかったのですが、1750億個ものパラメータを持つGPT-3は、文章で与えられた質問や例文の意図を組み込んで、つまりプロンプトの文脈に従って期待される言葉を生成できるようになったのでした。

特にタスクの説明といくつかの例文を与えると、そのパターンを読み取って似たような文を生成することができます。

例えば、以下のようなプロンプトを与えると、英単語の「cheese」をフランス語に訳した言葉を返してきます。

英語からフランス語に翻訳してください。

sea otter => loutre de mer

cheese =>

同様に、簡単な足し算の例を提示してやると、最後の足し算の計算を行ってくれます。

5 + 8 = 13

7 + 2 = 9

1 + 4 = 

ただし、あくまでも言語モデルとして推論しているので間違えることもあるので注意してください。

また、単語のスペルの間違いを修正する例を提示してやると、最後のスペルの修正を行います。

gaot => goat

sakne => snake

brid => bird

dcuk =>

この例文の数が多いほど、返答の精度がよくなります。論文の実験結果によると、多くの例文がある方が、より文脈の理解が正確になるのがわかります。

繰り返しますが、ファインチューニングを必要とせずに事前学習のみでこのようなことが可能になります。それだけ、GPT−3は言語の理解力があることになります。

しかし、なぜファインチューニングなしでタスクを理解し返答できるのでしょうか。

メタ学習と文脈内学習

人間の子供たちが学習する様子を思い浮かべてみてください。具体的なタスクや指示なしに経験を吸収することで言語能力を構築していく様子が想像できるでしょう。子供たちは、さまざまな経験を通して、言語構造の理解、会話や文章のパターンの認識などのスキルを習得していきます。

やがて、文脈を考慮して次に何が続くを予測できるようになります。 さらに、十分な語学力を得たことで、簡単な指示や例示を理解してタスクを実行できるようになります。

これと比べて、GPT-3のような言語モデルは、事前トレーニングとファインチューニングによって学習します。 大規模なデータセットを使用した自己教師ありの事前学習は、子供たちが言語を習得するのと似ています。

その一方で、教師あり学習のファインチューニングは、質問と解答を必要とする試験の詰め込みのようなものです。 特定のタスクを実行する方法を理解して学習するには、それなりに大きなデータセットにラベルを準備する必要があります。このファインチューニングの必要性は、GPT-3以前のモデルでは常識でした。

しかし、人間ならば「簡単な指示やいくつかの例」だけあればすぐにタスクを理解できます。我々はいちいちファインチューニングを必要としません。大抵のことは、子供の時に習得した言語スキルを使用してタスクを理解することが可能です。

逆に人間の学習を言語モデルとして考えると、人間にも経験を通して学習し習得した言語モデルがあるでしょう。さらに、人間は学習した言語モデルを使いこなすことで目の前のタスクに関して学習する能力があります。つまり、人間は学習した能力を使ってさらに学習(メタ学習)することができます。

では、言語モデルでもメタ学習を行うことは可能でしょうか。GPT-3の訓練では、文脈内学習(In-Context Learning)という概念を使っています。実は、文脈内学習とはある意味、次の言葉を予測する訓練の延長上にあると捉えることができます。

つまり、指示や例文を全体としてプロンプトとして捉え、言語モデルが予測する次に来る言葉を繋いでいけば、プロンプトの文脈を読みとった上で文章を生成することができます。それはプロンプトからタスクの続きを生成しているわけで、タスクの内容(文脈)を学習をして返答を生成していることになります。

1750億個のパラメータを持つGPT-3は文脈学習に長けており、ファインチューニングなしでも質問に答えられるようになりました。与えられた指示や例文の文脈から学んでタスクを推測し返答を生成します。

もちろん、ファインチューニングが必要となるタスクもありますし、GPT-3でファインチューニングを行うことは可能です。その点は以前の言語モデルと変わりはありません。

GPT-3の応用

GPT-3はさまざまなことに応用され実用化されています。

OpenAIは、自然言語をプログラムのコードに変換するCodexにGPT-3の文章生成機能を使用しています。

Microsoftは、Visual Studio Codeやその他の開発環境などのエディターでコードをオートコンプリートし、プログラマーを支援するGitHub CopilotでGPT-3の機能を使っています。

ChatGPTもGPT-3(あるいは3.5)を使用しています。2023年になってからGPT-4ベースのものも登場しました。今後、さらにバージョンアップしていくでしょう。

OpenAIはAPIを提供しており、これからのアプリの制作では言語モデルを一から訓練する必要がなくなりました。このため、GPT-3はファウンデーション(基盤)モデルとも呼ばれます。

ますます応用の範囲が広がることでしょう。

ここから先は

0字

キカベン・読み放題

¥1,000 / 月
初月無料
このメンバーシップの詳細

この記事が気に入ったらサポートをしてみませんか?